import http from '@/utils/http';
import { inject } from 'vue';

type HomeBannerData = {
  distributionSite: number;
};
export type BannerItem = {
  id: string;
  imgUrl: string;
  hrefUrl: string;
  type: number;
};
// 获取首页广告位图片
export const getHomeBanner = (data: HomeBannerData) => {
  return http<BannerItem[]>({
    url: '/home/banner',
    method: 'GET',
    data,
  });
};

/**
 * 数据
 */
export interface HomeCategoryItem {
  /**
   * 展示图标
   */
  icon: string;
  /**
   * id
   */
  id: string;
  /**
   * 分类名称
   */
  name: string;
}
// 获取首页分类
export const getHomeCategoryList = () => {
  return http<HomeCategoryItem[]>({
    url: '/home/category/mutli',
    method: 'GET',
  });
};

/**
 * 数据信息
 */
export interface HomeHotItem {
  /**
   * 推荐说明
   */
  alt: string;
  /**
   * id
   */
  id: string;
  /**
   * 图片集合
   */
  pictures: string[];
  /**
   * 跳转地址
   */
  target: string;
  /**
   * 推荐标题
   */
  title: string;
  /**
   * 推荐类型
   */
  type: string;
}
// 首页热门
export const getHomeHot = () => {
  return http<HomeHotItem[]>({
    url: '/home/hot/mutli',
    method: 'GET',
  });
};

interface NewData {
  limit: number;
}
/**
 * 数据信息
 */
export interface HomeNewItem {
  /**
   * 备注
   */
  desc: string;
  /**
   * id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品图片链接
   */
  picture: string;
  /**
   * 价格
   */
  price: number;
}
export const getHomeNew = (data: NewData) => {
  return http<HomeNewItem[]>({
    url: '/home/new',
    method: 'GET',
    data,
  });
};

// 获取猜你喜欢数据
interface HomeGoodsGuessLikeData {
  page: number;
  pageSize: number;
}
export interface GuessItem {
  /**
   * 商品描述
   */
  desc: string;
  /**
   * 商品折扣
   */
  // discount: number
  /**
   * id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品已下单数量
   */
  orderNum: number;
  /**
   * 商品图片
   */
  picture: string;
  /**
   * 商品价格
   */
  price: number;
}
/**
 * 返回数据
 */
export interface HomeGoodsGuessLikeResult {
  /**
   * 总条数
   */
  counts: number;
  /**
   * 当前页数据
   */
  items: GuessItem[];
  /**
   * 当前页数
   */
  page: number;
  /**
   * 总页数
   */
  pages: number;
  /**
   * 每页条数
   */
  pageSize: number;
}

export const getHomeGoodsGuessLike = (data: HomeGoodsGuessLikeData) => {
  return http<HomeGoodsGuessLikeResult>({
    url: '/home/goods/guessLike',
    method: 'GET',
    data,
  });
};

/**
 * 推荐通用 请求参数
 */
interface RecommendData {
  /**
   * 说明：分页页码
   */
  page?: number;
  /**
   * 说明：分页数据每页条数
   */
  pageSize?: number;
  /**
   * 说明：Tab 项的 id，默认查询全部 Tab 项的第 1 页数据
   */
  subType?: string;
}

/**
 * 推荐通用 响应结果
 */
export interface RecommendResult {
  /**
   * 活动图片
   */
  bannerPicture: string;
  /**
   * id信息
   */
  id: string;
  /**
   * 子类选项集合
   */
  subTypes: SubTypeItem[];
  /**
   * 活动标题
   */
  title: string;
}

/**
 * 子类选项
 */
export interface SubTypeItem {
  goodsItems: GoodsItems;
  /**
   * 子类选项id
   */
  id: string;
  /**
   * 子类选项名称
   */
  title: string;
}

export interface GoodsItems {
  /**
   * 总数量
   */
  counts: number;
  /**
   * 商品集合
   */
  items: Item[];
  /**
   * 页码
   */
  page: number;
  /**
   * 总页数
   */
  pages: number;
  /**
   * 页容量
   */
  pageSize: number;
}

/**
 * 商品项
 */
export interface Item {
  /**
   * 商品描述
   */
  desc: string;
  /**
   * 商品id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品图片
   */
  picture: string;
  /**
   * 商品价格
   */
  price: number;
}
// // 获取推荐页面商品数据
// export const getHotPreference = (data: RecommendData) => {
//   return http<RecommendResult>({
//     url: '/hot/preference',
//     method: 'GET',
//     data,
//   });
// };

// // 获取爆款推荐页面数据
// export const getHotInVogue = (data: RecommendData) => {
//   return http<RecommendResult>({
//     url: '/hot/inVogue',
//     method: 'GET',
//     data,
//   });
// };

// 获取通用推荐接口
export const getRecommend = (url: string, data: RecommendData) => {
  return http<RecommendResult>({
    url,
    method: 'GET',
    data,
  });
};
